Go to the [[Python Week 4 Main Page]] or the [[Python - Main Page]] Also see the [[Programming Main Page]] or the [[Main AI Page]]
"Num-Pie" in One Dimension, here focusing on ND arrays.
Numpy is a library for scientific computing, but has other useful functions. It’s heavily gutted and replaced with C code and runs extremely close to the metal compared to most Python libraries.
Lists have indexes, ND arrays are fixed in size and are usually the same data type (integer or float) and we refer to ‘casting’ them upon creation.
import numpy as np
a = np.array([0,1,2,3,4])
The array is indexed |0|1|2|3|4| just like built-in lists and each element can be accessed with the same square bracket notation.
type(a) = numpy.ndarray
a.dtype
—> dtype('int64')
a.size
—> refers to the number of elements in the array —> 5
a.ndim
—> refers to the number of array dimensions (or the rank? of the array) —> 1
a.shape
—> a tuple indicating the size of the array in each dimension —> (5,)
You can change the value of elements with the assignment operator =
as usual:
a[0] = 100
—> a:array([100, 1, 2, 3, 4])
d = a[3:5]
—> d:array([3, 4])
Numpy Arrays are optimised for data science operations and will take far less compute and memory to do them than traditional python functions would.
Vectors are a two-part number, an expression of an x,y coordinate on the complex plane (a scalar being a one dimensional x coordinate, vectors are two-dimensional, or one-dimensional with direction.)
\begin{bmatrix} 1 \ \hline 1 \end{bmatrix} $$
Syntax:
u = np.array([1,0])
v = np.array([0,1])
z = u + v
print(z)
z:array([1,1])
\begin{bmatrix} 1 \ \hline -1 \end{bmatrix} $$ Syntax:
u = np.array([1,0])
v = np.array([0,1])
z = u - v
print(z)
z:array([1,-1])
$$ y = \begin{bmatrix} 1 \ \hline 2 \end{bmatrix} $$
\begin{bmatrix} 2 \ \hline 4 \end{bmatrix} $$
y = np.array([1,2])
z = 2 * y
print(z)
z:array([2,4])
$$ u = \begin{bmatrix} 1 \ \hline 2 \end{bmatrix} $$
$$ v =
\begin{bmatrix} 3 \ \hline 2 \end{bmatrix} $$
$$ z = u \circ v =
\begin{bmatrix} 3 \ \hline 4 \end{bmatrix} $$
u = np.array([1,2])
v = np.array([3,2])
z = u * v
z:array([3,4])
A dot product operation shows the similarity of two vectors and is expressed by a single digit.
$$ u = \begin{bmatrix} 1 \ \hline 2 \end{bmatrix} $$
$$ v = \begin{bmatrix} 3 \ \hline 1 \end{bmatrix} $$
$$ u^Tv = 1 * 3 + 2 * 1 = 5 $$
u = np.array([1,2])
v = np.array([3,1])
result = np.dot(u,v)
result:5
Adding a scalar value to an np array will add that scalar to every element in the array. This is known as broadcasting.
u = np.array([1,2,3,-1])
z = u + 1 # add a scalar to the array
# 1 + 1, 2 + 1, 3 + 1, -1 + 1,
z:array([2,3,4,0])
You can create a new array using a list of integers as indeces in an assignment operation.
a = np.array([14, 6, 9, 2, 15, 200, 13, 17, 81, 62, 41])
selection_list = [1, 5, 8]
b = a[selection_list]
b:([6, 200, 81])
Say instead of assigning those indeces to a new array, we wanted to assign a new value to them. Can do.
a[selection_list] = 42
—> a:([14, 42, 9, 2, 15, 42, 13, 17, 42, 62, 41])
a = np.array([1,-1,1,-1])
mean_a = a.mean()
$$ \frac{1}{4} = \frac{1 - 1 + 1 - 1}{4} $$
print("Mean_A: ", mean_a)
... Mean_A: 0.0
Returns the largest or maximum value of the array.
Returns the smallest or minimum value of the array.
Returns the value of pi
Applies the sin function to each element in the array x
Generates an array with a pre-determined number of evenly spaced elements between two values.
Takes three arguments:
np.linspace(start_value, end_value, number_intervaals_between)
np.linspace( -2, 2, num = 9)
$$ \begin{array}{c|c} -2 & -1.5 & -1 & -0.5 & 0 & 0.5 & 1 & 1.5 & 2 \ \hline 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 \end{array} $$
Get the standard deviation of numpy array
standard_deviation=a.std()
Rendering context...